<?php

class BancoDados{
	private static $servidor;
	private static $usuario;
	private static $senha;
	private static $banco;
	
	/**
     * Retorna o Banco selecionado da Base de Dados.
     * @return string
     * @see BancoDados::$banco
     */
    private static function getBanco()
    {
        return BancoDados::$banco;
    }
   
    /**
     * Seta o Banco da Base de Dados a ser utilizado.
     * @param string $banco
     * @see BancoDados::$banco
     */
    private static function setBanco($banco)
    {
        BancoDados::$banco = $banco;
    }
   
    /**
     * Retorna a senha da Base de Dados
     * @return string
     * @see BancoDados::$senha
     */
    private static function getSenha()
    {
        return BancoDados::$senha;

    }
   
    /**
     * Seta a senha da Base de Dados.
     * @param string $senha
     * @see BancoDados::$senha
     */
    private static function setSenha($senha)
    {
        BancoDados::$senha = $senha;
    }
   
    /**
     * Retorna o servidor onde se encontra a base de dados.
     * @return string
     * @see BancoDados::$servidor
     */
    private static function getServidor()
    {
        return BancoDados::$servidor;
    }
   
    /**
     * Seta o servidor onde se encontra a base de dados.
     * @param string $servidor
     * @see BancoDados::$servidor
     */
    private static function setServidor($servidor)
    {
        BancoDados::$servidor = $servidor;
    }
   
    /**
     * Retorna o usuario da base de dados.
     * @return string
     * @see BancoDados::$usuario
     */
    private static function getUsuario()
    {
        return BancoDados::$usuario;
    }
   
    /**
     * Seta o usuario da Base de Dados.
     * @param string $usuario
     * @see BancoDados::$usuario
     */
    private static function setUsuario($usuario)
    {
        BancoDados::$usuario = $usuario;
    }
	
   /**
    * Seta o $servidor, $usuario, $senha, $banco.
    * @param string $servidor
    * @param string $usuario
    * @param string $senha
    * @param string $banco
    */
    public static function setBancoDados($servidor, $usuario, $senha, $banco) {
        BancoDados::setServidor($servidor);
        BancoDados::setUsuario($usuario);
        BancoDados::setSenha($senha);
        BancoDados::setBanco($banco);
    }
	
	/**
	 * Retorna uma conexao com o Banco de Dados.
	 * @return int
	 */
	public static function conectaBancoDados() {
		$conexao		= mysql_connect(BancoDados::getServidor(), BancoDados::getUsuario(), BancoDados::getSenha());		
		mysql_select_db(BancoDados::getBanco(), $conexao);
		return $conexao;
	}
	
	/**
	 * Retorna o resultado de um acesso ao Banco de Dados.
	 * @return resourse
	 * @param string $query
	 * @param int[optional] $conexao
	 */
	public static function query($strQuery, $conexao = null){
		if($conexao == null){
			
			if($conexao	=	BancoDados::conectaBancoDados()){
				if($resultSet	=	mysql_query($strQuery, $conexao)){
					BancoDados::desconectaBancoDados($conexao);
					if (is_resource($resultSet)){
						$vetor 	=	array();
						while($resultado	=	mysql_fetch_array($resultSet)){
							array_push($vetor, $resultado);
						}
						return $vetor;
					}
					else{
						return true;
					}
				}
				else{
					BancoDados::desconectaBancoDados($conexao);
					$strMensagem	=	"Desculpe-nos. Não foi possível estabelecer uma conexão com o Banco de Dados.";
					$_SESSION['constructore']['mensagens']['erroBancoDados']	=	$strMensagem;
					return false;
				}
			}
			else{
				$strMensagem	=	"Desculpe-nos. Não foi possível estabelecer uma conexão com o Banco de Dados.";
				$_SESSION['constructore']['mensagens']['erroBancoDados']	=	$strMensagem;
				return false;
			}
			
		}
		else{
			return mysql_query($strQuery, $conexao);
		}
		
	}
	
	
	/**
	 * Retorna um booleano que indica sucesso na desconexao ao Banco de Dados.
	 * @return bool
	 * @param $conexao Object
	 */
	public static function desconectaBancoDados($conexao){
		return mysql_close($conexao);
	}
}
?>
